This invention relates generally to computer networks and, more specifically, to computers that respond to network media events and inform applications of those events.
Computers that are able to sense when they are connected to a network and when that network connection comes up or goes down are called xe2x80x9cmedia sense aware.xe2x80x9d Cisco Corporation, for example, builds this awareness into some of its products. These products use hardware to detect link failures, and, upon detection, they update their routing tables to route traffic away from the failed link and then inform other routers of the updated tables. Media sense awareness is also very useful in other common computing scenarios. For example, when a non-media sense aware computer""s link is disconnected from one network and connected to another, an application that transmits secure information may not realize the change and may inadvertently leak that secure information out onto the new network. Likewise, a non-media sense aware computer that obeyed the bandwidth reservation guarantees given by a Quality of Service manager on its previous network may inadvertently violate the bandwidth guarantees on the new network.
Mobile computers are specially sensitive to problems if they are not media sense aware because they are often moved from one network to another or are disconnected from all networks. If the computer is not media sense aware, it may begin to operate on the new network with an obsolete network configuration, resulting in certain applications that communicate over the network becoming non-responsive or uncomfortably slow. For example:
The computer disconnects from a network. Applications that are using the network continue to send packets which time out, resulting in retries by the network protocol or by the application. Because retries are often exponentially backed off, these unnecessary timeouts and retries give rise to sluggish application behavior and a bad user experience.
The computer is disconnected from one network and connected to a different network. The protocol stack continues to use old network addresses even though they are not valid on the new network. This case has the same effect as the one above: sluggish application behavior and a bad user experience.
While some-computers are media sense aware, their awareness is restricted to discarding their network address on a media disconnect and then seeking a new address when the network connection comes up. These computers are oblivious to media events beyond disconnects and connects and are therefore very slow to react to such events because they must wait for a timer to expire before inquiring about the status of the network connection. Because they will not be informed when a situation changes, they may have to periodically poll for information about the situation and such polling consumes resources (battery power, for example, is a precious resource on small devices such as PDAs, handheld computers, etc.), both on the polling device and possibly on the network if the polls are sent to remote devices.
The present invention expands on the basic functionality of media sense aware computers to allow for more proactive and intelligent behavior by recognizing a broader range of network media events than simple disconnect and connect. When a network media event is detected, network parameters are adjusted, if possible, to adapt to the new circumstances brought about by the event. High-level protocol drivers are notified of the event, as are any network-aware applications, and traffic may be rerouted if that is appropriate. Sometimes, as a result of the network media event, the computer communicates with other devices on the network to discover the state of network entities, network elements, and services.